package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.SignalLampGroupInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护信号灯组的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboSignalLampGroupInfoService {
	/**
	 * 返回所有信号灯组信息
	 * @return ResultPojo 信号灯组信息
	 */
	public ResultPojo getSignalLampGroupInfo();
	
	/**
	 * 分页返回信号灯组信息
	 * @param page 分页对象
	 * @return ResultPojo 包含信号灯组信息的分页对象
	 */
	public ResultPojo getPageSignalLampGroupInfo(Page page);
	/**
	 * 返回所有信号灯组信息
	 * @param orderSeq 
	 * @param sigContent 
	 * @param slgId 
	 * @return ResultPojo 信号灯组信息
	 */
	public ResultPojo getSignalLampGroupInfo(String slgId, String sigContent, String orderSeq);
	
	/**
	 * 分页返回信号灯组信息
	 * @param page 分页对象
	 * @param orderSeq 
	 * @param sigContent 
	 * @param slgId 
	 * @return ResultPojo 包含信号灯组信息的分页对象
	 */
	public ResultPojo getPageSignalLampGroupInfo(Page page, String slgId, String sigContent, String orderSeq);
	
	/**
	 * 返回指定编码的信号灯组信息
	 * @param slgId 信号灯组编码
	 * @return ResultPojo 信号灯组信息
	 */
	public ResultPojo getSignalLampGroupInfoById(String slgId);
	
	/**
	 * 返回与前缀相匹配的信号灯组编码最大值，用于手工生成新的信号灯组编码
	 * @param prefixSlgId 信号灯组编码前缀
	 * @return String 与前缀相匹配的信号灯组编码最大值
	 */
	public String getMaxSlgId(String prefixSlgId);
	
	/**
	 * 添加一条信号灯组信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalLampGroupInfoDto 信号灯组信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addSignalLampGroupInfo(String token, SignalLampGroupInfoDto signalLampGroupInfoDto);
	
	/**
	 * 修改一条信号灯组信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalLampGroupInfoDto 信号灯组信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editSignalLampGroupInfo(String token, SignalLampGroupInfoDto signalLampGroupInfoDto);
	
	/**
	 * 删除指定编码的信号灯组信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param slgId 信号灯组编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeSignalLampGroupInfo(String token, String slgId);

	public ResultPojo getPageEasyUiSignalLampGroupInfo(Page page, String slgId, String sigContent, String orderSeq);
}
